Operating systems for computing devices can provide or require execution of an application to occur in a sandbox. For example, Apple's iOS® operating system requires that each application executing on an iPhone or iPad execute in its own sandbox. An application executing in a sandbox operates in an isolated environment and is limited to accessing hardware resources and/or files or applications assigned to the sandbox. This prevents the application executing in the sandbox from accessing resources, either inadvertently or surreptitiously, for which the application does not have permission. For example, two applications executing in two sandboxes on the same computer can be unaware of each other and/or unable to communicate with each other through various interprocess communication facilities provided by the operating system.
However, two applications executing in separate sandboxes on the same computing device can have a need to communicate with each other. For example, one application can have a need to share a file or other data with the other application. Some operating systems can provide a secure communications framework to allow two sandboxed applications to communicate with each other. For example, some versions of Apple's iOS® provide the Extensions Framework to allow limited communication between applications executing on an iOS® device. Similar functionality is provided in some versions of Apple's OSX®. An application implementing an Extension, such as the Share File Extension, is able to share a file with any other application on the same device that implements the Share File Extension.